﻿<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>

<head>
<title>GetPluginDirList</title>
<meta http-equiv="Content-Type" Content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="../../styles/styles.css">
<script language="javascript" src='../links.js' type="text/javascript"></script>
</head>
<body>

<h1>GetPluginDirList</h1>
<div class=navbar>
<a href="../index.html">главная</a> |
<a href="index.html">сервисные функции</a> |
<a href="../panelapi/index.html">Panel API</a>
</div>

<div class=shortdescr>
Функция <code>GetPluginDirList</code> возвращает список файлов в указанной директории (с поддиректориями) эмулируемой файловой системы.
</div>

<pre class=syntax>
intptr_t WINAPI GetPluginDirList(
  const GUID *PluginId,
  HANDLE hPanel,
  const wchar_t *Dir,
  struct PluginPanelItem **pPanelItem,
  size_t *pItemsNumber
);
</pre>
<h3>Параметры</h3>
<div class=descr>
  <div class=dfn>PluginId</div>
    <div class=dfndescr>Указатель на GUID плагина (для вашего плагина, GUID должен быть таким же, что и в поле <code>GlobalInfo.Guid</code> функции <a href="../exported_functions/getglobalinfow.html">GetGlobalInfoW</a>).</div>
  <div class=dfn>hPanel</div>
    <div class=dfndescr>Текущий описатель панели.</div>
  <div class=dfn>Dir</div>
    <div class=dfndescr>Имя обрабатываемой директории. Должно быть в форме, приемлемой для функции плагина <a href="../exported_functions/setdirectoryw.html">SetDirectoryW</a>.
    Плагинам обычно не требуется обработка полного пути функцией <code>SetDirectoryW</code>, поэтому чаще всего (нужно в этом убедиться), это просто имя обрабатываемого подкаталога текущего каталога.
    <p>Для сохранения текущей директории плагина неизменной после вызова <code>GetPluginDirList</code>, либо <code>Dir</code> должен быть подкаталогом текущего каталога плагина, либо функция <a href="../exported_functions/setdirectoryw.html">SetDirectoryW</a>
    плагина должна уметь обрабатывать имя каталога, возвращаемое <a href="../exported_functions/getopenpanelinfow.html">GetOpenPanelInfoW</a>.
    Иначе текущая директория будет изменена, и вы должны быть готовы восстановить её.</div>
  <div class=dfn>pPanelItem</div>
    <div class=dfndescr>Указывает на переменную, которая получит адрес массива структур <a href="../structures/pluginpanelitem.html">PluginPanelItem</a>.<br>
    Когда этот массив больше не нужен, он должен быть передан функции <a href="freeplugindirlist.html">FreePluginDirList</a>.</div>
  <div class=dfn>pItemsNumber</div>
    <div class=dfndescr>Указывает на переменную, которая получит число структур <a href="../structures/pluginpanelitem.html">PluginPanelItem</a>.</div>
</div>

<h3>Возвращаемое значение</h3>
<div class=descr>
Если функция завершилась успешно, она вернёт <code>TRUE</code>. Если функция закончилась неудачно или обработка директории была прервана пользователем, то она вернёт <code>FALSE</code>.
</div>

<h3>Замечания</h3>
<div class=descr>
<ol>
<li>Возвращаемые имена файлов включают исходный каталог <code>Dir</code>. Например, если <code>Dir</code> есть <code>DIR1\DIR2</code>, то имена файлов будут в виде <code>DIR1\DIR2\file.ext</code>, <code>DIR1\DIR2\subdir\file.ext</code> и т.п.
<li>Пользователь может прервать выполнение функции, нажав клавишу <kbd>Esc</kbd>,  при этом функция вернёт значение <code>FALSE</code>.
</ol>
</div>

<div class=see>Смотрите также:</div>
<div class=seecont>
<a href="getdirlist.html">GetDirList</a>
</div>

</body>
</html>